/**
 * 
 */
package de.wesemann.jdedun.implementation;

import java.util.List;
import java.util.Map;

/**
 * @author spinner0815
 * 
 */
public interface ImplementationInterface {

    /**
     * count the resources
     * 
     * @return the count
     */
    public int count();

    /**
     * get all resources
     * 
     * @return the list with the specified resouces
     */
    public List<?> getAll();

    /**
     * get the first n resources
     * 
     * @param n
     *            how many resources want to get
     * @return the list with the first n resources
     */
    public List<?> getFirstN(int n);

    /**
     * get n resources from point offset
     * 
     * @param n
     *            how many resources want to get
     * @param offest
     *            the resources u dont want get from the first one
     * @return the list with n resource from the offset
     */
    public List<?> getNextN(int n, int offset);

    /**
     * search the resource by specified key value pairs if the key is q a
     * fulltextsearch is possible
     * 
     * @param searchTupel
     *            the tupel with key value pairs. the key is for example the
     *            attribute of a resource
     * @return returns a list with all found resources
     */
    public List<?> search(Map<String, String> searchTupel);

    /**
     * the url stub where the resource is
     * 
     * @return the url stub where the resource is
     */
    public String getURLStub();

    /**
     * the url stub where the resource is
     * 
     * @param urlStub
     *            the url stub where the resource is
     */
    public void setURLStub(String urlStub);

}
